import yaml
from pathlib import Path
from typing import Dict, Any    # 类型提示，Dict表示字典，Any表示任意类型


class ConfigLoader:
    def __init__(self, config_dir: str = "config"):
        self.config_dir = Path(config_dir)                          # 配置目录默认是config目录
        self.app_config = self._load_config("app_config.yaml")      # 加载app_config.yaml文件
        self.model_config = self._load_config("model_config.yaml")  # 加载model_config.yaml文件

    def _load_config(self, filename: str) -> Dict[str, Any]:
        """加载YAML配置文件"""
        config_path = self.config_dir / filename                # 拼凑配置文件路径
        with open(config_path, 'r', encoding='utf-8') as f:     # 使用只读的方式打开文件
            return yaml.safe_load(f)                            # 加载YAML文件

    def get_app_config(self) -> Dict[str, Any]:
        return self.app_config          # 返回app_config

    def get_model_config(self) -> Dict[str, Any]:
        return self.model_config        # 返回model_config
